package com.kkb.hbase.mr.demo3UDPartitioner;

import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Partitioner;

/**
 * 对k2 v2 数据类型进行自定义分区
 */
public class PartitionOwn extends Partitioner<Text,FlowBean> {
    @Override
    public int getPartition(Text text, FlowBean flowBean, int numPartitions) {
        //135 136 137 138 139 其他
        //0-5 共6个分区 -》需要6个reduceTask
        String phoneNum = text.toString();
        if(StringUtils.isNoneEmpty(phoneNum)){
            if (phoneNum.startsWith("135")){
                return 0; //key以135开头的 写入到0号分区
            }else if (phoneNum.startsWith("136")){
                return 1;
            }else if (phoneNum.startsWith("137")){
                return 2;
            }else if (phoneNum.startsWith("138")){
                return 3;
            }else if (phoneNum.startsWith("139")){
                return 4;
            }else{
                return 5;
            }
        }else{
            return 0;
        }
    }
}
